// #include <algorithm>
// #include <iostream>
#include <bits/stdc++.h>
using namespace std;

// 结构体 struct
struct Student {
  int id;
  string name;
  int score;
};

// 比较函数：代替排序算法中的比较部分，决定排序规则：升序、降序等
bool cmp(Student& a, Student& b) {
  return a.score > b.score;
}

// 例一：按成绩排序
// 10101 Zhang 78
// 10103 Wang 98
// 10106 Li 86
// 10108 Ling 73
// 10110 Sun 100
void eg1() {
  // 输入n个学生的信息
  int n;
  cin >> n;
  Student s[n];
  for (int i = 0; i < n; i++) {
    cin >> s[i].id >> s[i].name >> s[i].score;
  }
  // 排序
  sort(s, s + n, cmp);
  cout << "排序后：" << endl;
  for (int i = 0; i < n; i++) {
    cout << s[i].id << " " << s[i].name << " " << s[i].score << endl;
  }
}

// 枚举类型：enum 每个枚举值可用整数常量或字符常量表示
// 枚举类型支持的关系运算符：== != < <= > >=
enum Rainbow {   // 彩虹颜色类型
  RED = 'R',     // 赤
  ORANGE = 'O',  // 橙
  YELLOW = 'Y',  // 黄
  GREEN = 'G',   // 绿
  BLUE = 'B',    // 蓝
  INDIGO = 'I',  // 靛
  PURPLE = 'P'   // 紫
};
enum Weekday {    // 周类型（星期、礼拜、日常）
  MONDAY = 1,     // 周一
  TUESDAY = 2,    // 周二
  WEDNESDAY = 3,  // 周三
  THURSDAY = 4,   // 周四
  FRIDAY = 5,     // 周五
  SATURDAY = 6,   // 周六
  SUNDAY = 7      // 周天
};

// 例二：排列组合
void eg2() {
  enum Color { red = 0,
               yellow = 1,
               blue = 2,
               white = 3,
               black = 4 };
  string color[5] = {"red", "yellow", "blue", "white", "black"};
  int count = 0;
  // 组合
  // for (int i = 0; i < 5; i++) {
  //   for (int j = i + 1; j < 5; j++) {
  //     for (int k = j + 1; k < 5; k++) {
  //       cout << color[i] << " " << color[j] << " " << color[k] << endl;
  //       count++;
  //     }
  //   }
  // }
  // cout << "共有 " << count << " 种组合" << endl;
  // 排列：C[5,3] = 5 * 4 * 3 = 60
  for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
      if (i == j)
        continue;
      for (int k = 0; k < 5; k++) {
        if (i == k || j == k)
          continue;
        cout << color[i] << " " << color[j] << " " << color[k] << endl;
        count++;
      }
    }
  }
  cout << "共有 " << count << " 种排列" << endl;
}

// 类型别名 typedef 原类型表示 自定义名称
typedef long long lint;
typedef Student Stu;
typedef int* intp;
// 常量定义 const
const int MAX = 100;
int const MIN = 0;
#define PI 3.1415926
const float pi = 3.1415926;

// 例三：字符常量组合
void eg3() {
  const char CA = 'l', CB = 'o', CC = 'v', CD = 'e', CE = 'u';
  cout << CA << CB << CC << CD << ' ' << CE << endl;
}

// 例四：最高分数学生的姓名
// 定义学生结构体
struct stu {
  int score;
  string name;
};
// 找到最高分学生并返回姓名
string findXueBa(stu s[], int n) {
  stu max = {0, ""};
  for (int i = 0; i < n; i++) {
    if (s[i].score > max.score) {
      max = s[i];
    }
  }
  return max.name;
}
void eg4() {
  // 接收输入
  int n;
  cin >> n;
  // 声明学生数组
  stu s[n];
  // 初始化学生数组
  for (int i = 0; i < n; i++) {
    cin >> s[i].score >> s[i].name;
  }
  // 输出最高分学生的姓名
  cout << findXueBa(s, n) << endl;
}
/* 测试用例
5
87 lilei
99 hanmeimei
97 lily
96 lucy
77 jim
*/
int main() {
  // 使用 UTF-8 防止中文乱码
  system("chcp 65001 > nul");
  eg4();
  return 0;
}